package za.org.jcicada.genss.sensor;

import za.org.jcicada.genss.sensor.impl.InvalidSensorValue;

/**
 * Interface for objects calculating a sensor status value.
 * @author rcrida
 */
public interface IStatusStrategy {

	/**
	 * Check if the specified sensorType is compatible with this strategy
	 * @param sensorType
	 * @return true if compatible
	 */
	boolean isValidSensorType(ISensorType sensorType);
	
	/**
	 * Determine the status for the specified sensor given a new value
	 * @param value the sensor set value
	 * @return the calculated sensor status
	 */
	SensorStatus getStatus(Object value) throws InvalidSensorValue;
}
